iT邦幫忙

2021 iThome 鐵人賽

DAY 18
0
Security

一起資安入門 -- picoCTF 探索與解題系列 第 18

[2021鐵人賽 Day18] General Skills 15

  • 分享至 

  • xImage
  •  
  • 引言
    我們終於快完成 General Skills 了,
    最後的時間我們會來解解其他六大類的題目。

    之前說的 picoCTF 2019 的遊戲的話,
    我打算跟大家介紹遊玩方式為主,
    基本上題目大部分都收錄在 picoGym 這個解題頁面,
    講解還是會在 picoGym 進行。

  • General Skills / plumbing
    https://ithelp.ithome.com.tw/upload/images/20211003/20111429h6PCFXCF30.png
    題目先要求你連上伺服器:

    $ nc jupiter.challenges.picoctf.org 7480
    

    連上後程式會輸出諸如以下的資訊:

    This is defintely not a flag
    Not a flag either
    Again, I really don't think this is a flag
    Again, I really don't think this is a flag
    Not a flag either
    Not a flag either
    Not a flag either
    Not a flag either
    I don't think this is a flag either
    This is defintely not a flag
    

    會輸出很多很多,最後停下。
    可以觀察出題目應該是要我們從這堆訊息中找 flag !

    剛剛的程式你可以按下 Enter ,程式就會結束。

    相信你看了那麼多題了,腦中應該已經浮現那個字了吧~
    就是 grep !這題一樣是 grep 題,
    你可以利用 grep 先自己寫寫看要怎麼找 flag,
    我馬上公佈答案:

    公
    
    佈
    
    答
    
    案
    
    就
    
    在
    
    下
    
    面
    

    你可能有疑問, grep 是從檔案中找資訊,
    但是這是 nc 耶,是程式輸出的資訊,
    也可以找嗎?

    當然可以,我們有兩種方法:

    1. 管線
      第一種就是管線 (pipe) ,這個我們也使用過,
      grep 很常搭配管線使用,像 nc 這種情形就非常適合。

      $ nc jupiter.challenges.picoctf.org 7480 | grep "pico"
      

      你可以搜尋 pico 或是 picoC 、 picoCT 、 picoCTF 之類的都可以,
      反正找的到都好,程式就會:

      picoCTF{digital_plumb3r_06e9d954}
      

      (你的 flag 後面那串編號會跟我不同,再次提醒)
      然後按下 Enter 結束。

    2. 輸出至檔案
      第二種方式就很直觀,既然 grep 拿來找檔案內容,
      那我就把輸出導到檔案就好啊!

      所以你也可以將程式的輸出導到檔案:

      $ nc jupiter.challenges.picoctf.org 7480 > flag_file
      

      然後按 Enter 結束。

      維基百科: 重新導向(電腦)
      >< 都是重新導向的符號,
      > 負責把輸出導向到其他地方,
      < 負責將其他地方的資料流導入到程式的輸入。

      你可以看到其實管線也是重新導向的一種,
      的確也相當合理, output -> 下個 input 。

      它不會有輸出顯示在螢幕,
      這邊以可以想像成,螢幕是一個「檔案」,
      一般情形會把輸出導到螢幕這個「檔案」,
      你就會看到 shell 上顯示結果。

      現在我們將輸出重導到你指定的檔案,
      自然螢幕就不會顯示了,資訊已經導走了。

      你可以看看這個檔案內容:

      $ cat flag_file
      

      確認資訊的確在裡面。

      然後我們就可以用 grep 找出 flag :

      $ grep "pico" flag_file
      
      picoCTF{digital_plumb3r_06e9d954}
      

上一篇
[2021鐵人賽 Day17] General Skills 14
下一篇
[2021鐵人賽 Day19] General Skills 16
系列文
一起資安入門 -- picoCTF 探索與解題30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言